package cn.iocoder.yudao.module.mqtt.controller.admin.subscribewater.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import com.alibaba.excel.annotation.*;

@Schema(description = "管理后台 - MQTT水监控 Response VO")
@Data
@ExcelIgnoreUnannotated
public class SubscribeWaterRespVO {

    @Schema(description = "主键ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "28356")
    @ExcelProperty("主键ID")
    private Long id;

    @Schema(description = "设备KEY", example = "9746")
    @ExcelProperty("设备KEY")
    private String deviceKey;

    @Schema(description = "MQTT配置ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "23179")
    @ExcelProperty("MQTT配置ID")
    private Long mqttConfigId;

    @Schema(description = "主题", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("主题")
    private String topic;

    @Schema(description = "温度")
    @ExcelProperty("温度")
    private String payloadWd;

    @Schema(description = "浊度")
    @ExcelProperty("浊度")
    private String payloadZd;

    @Schema(description = "余氯")
    @ExcelProperty("余氯")
    private String payloadYl;

    @Schema(description = "pH值")
    @ExcelProperty("pH值")
    private String payloadPh;

    @Schema(description = "消息内容")
    @ExcelProperty("消息内容")
    private String payload;

    @Schema(description = "服务质量")
    @ExcelProperty("服务质量")
    private Integer qos;

    @Schema(description = "是否保留消息")
    @ExcelProperty("是否保留消息")
    private Boolean retained;

    @Schema(description = "消息方向：IN-接收，OUT-发送", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("消息方向：IN-接收，OUT-发送")
    private String direction;

    @Schema(description = "客户端ID", example = "18777")
    @ExcelProperty("客户端ID")
    private String clientId;

    @Schema(description = "消息ID", example = "8008")
    @ExcelProperty("消息ID")
    private String messageId;

    @Schema(description = "时间戳", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("时间戳")
    private LocalDateTime timestamp;

    @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("创建时间")
    private LocalDateTime createTime;

}